Commonly, computer systems include a memory device such as a ROM or PROM on which bootstrap data, in the form of computer code, is stored in non-volatile form so that the bootstrap data is not lost when power goes off. When power for the computer system is turned on, the bootstrap data is loaded into the active processing parts of the computer system in order to condition the computer system to read software from an input device, such as a disk drive or other storage device, and to execute the software that it reads. Most commonly this bootstrap data is loaded automatically by the computer in response to an initialization signal generated when the computer is turned on or reset or, at other times, when the data stored in the bootstrap memory device is needed.
The bootstrap data typically includes data for configuring the computer system, the units connected on-line to the system and operating characteristics of those units, such as the bit rate or data protocols of a communication device. Also the bootstrap data may include code which conducts diagnostic routines on the computer system to assure that the system will run properly. Further, the bootstrap data includes code for loading operating systems software into the system from a storage device, such as a disk unit.
The prior art bootstrap memory devices typically are loaded with the bootstrap data during manufacture, or otherwise have the bootstrap datas inalterably fixed into the computer system. Thus, normally only the manufacturer of the computer system has control over the bootstrap data which is stored in the bootstrap memory device. Some users have particular applications which require additional or modified bootstrap data but prior art systems have prevented such users from efficiently adding or modifying bootstrap data. Such users generally have been required to allow the computer system to bootstrap itself using the original bootstrap data and then execute application software routines which change the configuring data, the diagnostic routines or other parameters under which the computer system operates. This approach is inflexible and cumbersome to accomplish.
Further, a user of a computer system who adds a particular hardware unit may desire configurable bootstrap data. For instance, a user may require diagnostic routines to be run on specific application hardware before software is accepted by the computer system. Alternatively, a user may add on additional processing units which require bootstrap data for communication with the host system. For some systems the user may need to configure the sequence of bootstrapping among various machines in the system.
Obviously, as the number of peripheral connections to separate machines grows, or the more specialized the function becomes, for a given computer system, the higher the probability that the bootstrap data provided with the host computer system will be inadequate.
Thus there is need for a user-configurable, programmable bootstrap device which allows for specialized functions or expansion of a computer system and flexibility in the bootstrap data for the computer system.